package reflect;

import pojo.Person;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Scanner;

/**
 * 使用反射机制调用有参方法
 */
public class ReflectDemo7 {
    public static void main(String[] args) throws Exception {
        Class cls = Class.forName("pojo.Person");
        Object o = cls.newInstance();
        //getMethod(String methodName) 获取方法名为methodName的无参方法
        //getMethod(String methodName,Class par1,Class par2,...) 获取方法名为methodName的并且参数为par1,par2所代表的类型的方法
        Method method = cls.getMethod("doSome", String.class);//doSome(String thing)
        method.invoke(o, "玩游戏");//o.doSome("玩游戏")
        method = cls.getMethod("doSome", String.class, int.class);//doSome(String thing,int num)
        method.invoke(o, "学习", 5);//o.doSome("学习",5)
    }
}
